package com.malie.myspringboot.jdk8;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.function.Predicate;

/**
 * Lamda表达式使用场景
 */
public class LamdaDemo {
    /*
    集合排序
     */
    public static void main(String[] args) {
        //list集合建议定义时初始化容量
        ArrayList<Integer> list = new ArrayList<>(5);
        list.add(5);
        list.add(111);
        list.add(22);
        list.add(45);
        list.add(17);
        list.sort((a1,a2) ->  a1-a2);
        System.out.println(list);

       /* list.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1 - o2;
            }
        });*/


        /*
         集合遍历（带条件）
        */
        ArrayList<Integer> list1 = new ArrayList<>();
        Collections.addAll(list1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
        list1.forEach(e -> {
            if (e % 2 == 0){
                System.out.println(e);
            }
        });



        /*
    集合条件删除
     */
        ArrayList<Integer> list2 = new ArrayList<Integer>(){
            {add(1);add(2);add(3);}
        };
        //删除集合中于2的元素
/*        ListIterator<Person> it = list.listIterator();
        while(it.hasNext()){
            Person ele = it.next();
            if(ele.age > 12){
                it.remove();
            }
        }*/

        //Lambda实现，将集合中的每一个元素都带入到test方法中，如果返回值是true，则删除这个元素
       /* list2.removeIf(new Predicate<Integer>() {
            @Override
            public boolean test(Integer integer) {
                return false;
            }
        });*/
        list2.removeIf(e -> e>2);
        System.out.println("list2------------"+list2);



        //需求：开辟一条线程，做一个数字的输出

      /*  Thread t = new Thread(new Runnable() {
            @Override
            public void run() {
                for(int i = 0; i < 100; i++){
                    System.out.println(i);
                }
            }
        });
        t.start();


        Thread t2 = new Thread(() -> {
            for(int i = 0; i < 100; i++){
                System.out.println(i);
            }
        });
        t2.start();*/
       //  Date da=vocationSubmitDtos.get(0).getEndTime(); //取时间




    }

}
